package com.whf.android.jar.util.skip;

import java.io.Serializable;

/**
 * 导航目的或起点位置信息。
 * <p>默认坐标系为腾讯、高德坐标系
 * <p>默认位置为中再云图的高德位置信息
 *
 * @author qf
 * @version 1.0.2
 */
public class Navigation implements Serializable {
    private final static double x_pi = 3.14159265358979323846 * 3000.0 / 180.0;
    private final double longitude;
    private final double latitude;
    private final String storeName;

    public Navigation() {
        longitude = 29.602552;
        latitude = 106.313509;
        storeName = "中再云图技术有限公司";
    }

    public Navigation(double longitude, double latitude, String storeName) {
        this.longitude = longitude;
        this.latitude = latitude;
        this.storeName = storeName;
    }

    public double getLongitude() {
        return longitude;
    }

    public double getLatitude() {
        return latitude;
    }

    public double getLongitudeBaiDu() {
        double x = longitude, y = latitude;
        double z = Math.sqrt(x * x + y * y) + 0.00002 * Math.sin(y * x_pi);
        double theta = Math.atan2(y, x) + 0.000003 * Math.cos(x * x_pi);
        return z * Math.cos(theta) + 0.0065;
    }

    public double getLatitudeBaiDu() {
        double x = longitude, y = latitude;
        double z = Math.sqrt(x * x + y * y) + 0.00002 * Math.sin(y * x_pi);
        double theta = Math.atan2(y, x) + 0.000003 * Math.cos(x * x_pi);
        return z * Math.sin(theta) + 0.006;
    }

    public String getStoreName() {
        return storeName;
    }

//    public LatLng getLatLngGps() {
//        CoordinateConverter converter = new CoordinateConverter(Latte.getApplicationContext());
//        // CoordType.GPS 待转换坐标类型
//        converter.from(CoordinateConverter.CoordType.GPS);
//        // sourceLatLng待转换坐标点 LatLng类型
//        converter.coord(new LatLng(latitude, longitude));
//        // 执行转换操作
//        return converter.convert();
//    }
//
//    public LatLng getLatLngBaiDu() {
//        CoordinateConverter converter = new CoordinateConverter(Latte.getApplicationContext());
//        // CoordType.GPS 待转换坐标类型
//        converter.from(CoordinateConverter.CoordType.BAIDU);
//        // sourceLatLng待转换坐标点 LatLng类型
//        converter.coord(new LatLng(latitude, longitude));
//        // 执行转换操作
//        return converter.convert();
//    }
}
